package cn.kgc.springbootdemo.constant;

import com.google.common.collect.Lists;

import java.util.AbstractList;
import java.util.ArrayList;
import java.util.List;

public interface CommonConstants {

    /**
     * 成功标记
     */
    Integer SUCCESS = 0;
    /**
     * 失败标记
     */
    Integer FAIL = 1;

    /**
     * token
     */
    String COOKIE_NAME_TOKEN = "token";



    /**
     * token过期时间,2小时
     */
    int TOKEN_EXPIRE = 3600*2;

    /**
     * header 中租户ID
     */
    String TENANT_ID = "TENANT-ID";

    /**
     * header 中版本信息
     */
    String VERSION = "VERSION";

    /**
     * 租户ID
     */
    String TENANT_ID_1 = "1";

    /**
     * 请求参数长度为1
     */
    Integer request_param_length = 1;

    /**
     * 删除
     */
    String STATUS_DEL = "1";
    /**
     * 正常
     */
    String STATUS_NORMAL = "0";

    /**
     * 锁定
     */
    Integer STATUS_LOCK = 9;

    /**
     * 菜单
     */
    Integer MENU = 0;

    /**
     * 菜单树根节点
     */
    String MENU_TREE_ROOT_ID = "-1";

    /**
     * 编码
     */
    String UTF8 = "UTF-8";

    /**
     * 前端工程名
     */
    String FRONT_END_PROJECT = "ui";

    /**
     * 后端工程名
     */
    String BACK_END_PROJECT = "pet";

    /**
     * 验证码前缀
     */
    String DEFAULT_CODE_KEY = "DEFAULT_CODE_KEY_";

    /**
     * 在线online文件存储bucket空间
     */
    String ONLINE_BOCKET = "online";

    /**
     * feign请求失败,返回定义
     */
    String FALLBACK = "fallback";

    /**
     * 开发环境激活配置
     */
    String DEV_ENVIRONMENT = "dev";

    /**
     * 测试环境激活配置
     */
    String TEST_ENVIRONMENT = "test";

    /**
     * 预生产环境
     */
    String PRE_ENVIRONMENT = "pre";

    /**
     * 生产环境
     */
    String PROD_ENVIRONMENT = "prod";


    /**
     * 机器验证码
     */
    String MACHINE_CODE = "1234";

    /**
     * 权限标识前缀
     */
    String ROLE_PREFIX = "ROLE_";

    /**
     * 上传文件唯一key
     */
    String UPLOAD_KEY = "570617410441183232";


    /**
     * 图片png格式
     */
    String PNG = "png";

    /**
     * 图片jpg格式
     */
    String JPG = "jpg";

    /**
     * 图片jpeg格式
     */
    String JPEG = "jpeg";
    /**
     * 视频MP4格式
     */
    String MP4 = "mp4";
    /**
     * 查询最大条数
     */
    Integer QUERMAXPAGESIZE = 20;

    /**
     * 查询总条数结果为0
     */
    Long RESULT_ZERO = 0L;

    /**
     * 报警堆栈异常最大长度为500
     */
    Integer EXCEPTION_MSG_MAX = 1000;

    /**
     * 异常警告级别High
     */
    String ERR_LEVEL_HIGH = "High";

    /**
     * ava.util.Date字符串
     */
    String JAVA_UTIL_DATE = "java.util.Date";

    /**
     * 菜单 是否已勾选0：未勾选，1：已勾选
     */
    Integer SELECTED = 1;


    /**
     * Excel上传最大条数
     */
    Integer EXCEL_MAX_SIZE = 1000;

    /**
     * Excel上传最小模板条数
     */
    Integer EXCEL_MIN_SIZE = 2;

    /**
     * 上传教师最大条数
     */
    Integer EXCEL_TEACHER_MAX_SIZE = 800;

    /**
     * 系统默认角色
     */
    Integer SYSTEM_ADD_ROLE_TYPE = 1;

    /**
     * 客户自己新增角色
     */
    Integer CUSTOM_ADD_ROLE_TYPE = 2;

    /**
     * 学生绑定家长最多为5个家长
     */
    Integer STUDENT_BIND_PATRIARCH_MAX = 5;

    /**
     * undefined
     */
    String UNDEFINED = "undefined";

    /**
     * 用户角色列表 0 标识教师  1 教务
     */
    List<Integer> USERROLELIST = Lists.newArrayList(0, 1);


    /**
     * list切割为多线程条数
     */
    Integer THREAD_LIST_SIZ = 5;

    /**
     * Minio访问文件过期时间为7天
     */
    Integer MINIO_SEVEN_EXPIRES = 7 * 24 * 60 * 60;

    /**
     * 用户登录记录日志rabbitmq直连队列名称
     */
    String QINGDUO_LOGIN_DIRECT_QUEUE = "qingDuoLoginDirectQueue";

    /**
     * 用户登录记录日志rabbitmq直连交换机名称
     */
    String QINGDUO_LOGIN_DIRECT_EXCHANGE = "qingDuoLoginDirectExchange";

    /**
     * 用户登录记录日志rabbitmq直连交换机 绑定路由key
     */
    String QINGDUO_LOGIN_DIRECT_BINDINGDIRECT = "qingDuoLoginDirectBindingDirect";

    /**
     * 刷新网关路由key定时任务job唯一值
     */
    String GATEWAYROUTE_JOB_UNIQUE = "qingduo:job:upms:gatewayroute:unique:%s";

    /**
     * Redis集群连接前缀
     */
    String REDIS_CLUSTER_PREX = "redis://";

    /**
     * minio bucket_dzj
     */
    String BUCKET_DZJ = "dzj";

    /**
     * Excel后缀名
     */
    String EXCEL_SUFFIX = ".xlsx";
}
